package JDBC;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * 首页类,用来进行注册和登录操作
 * 本类使用的数据库名为 scoredatabase
 * 使用的表:user_table
 *
 *   "*******"标记处为功能添加处
 *
 * @Author Alex
 */
public class HomePage {
    /**
     * 注册
     * 从网页获取用户输入的name和psw,组成一个User类,将id设置成null
     *
     * ----注册成功和失败都需要返回对应的页面----
     *
     * @param user
     * @throws SQLException
     * @throws ClassNotFoundException
     */
    public static void reg(User user) throws SQLException, ClassNotFoundException {
        //获取连接器
        Connection con = JDBCUtils.get();
        //先查询出数据库中所有的user信息,放入User集合
        String sql = "select id,name,psw from user_table";
        PreparedStatement ps = con.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        List<User> userList = new ArrayList<>();
        while (rs.next()){
            Integer rsId = (Integer) rs.getObject(1);
            String rsUser = (String) rs.getObject(2);
            String rsPsw = (String) rs.getObject(3);
            User u = new User(rsId,rsUser,rsPsw);
            userList.add(u);
        }
        boolean flag = true;
        for (User u:userList){
            if(u.getName().equals(user.getName())){
                flag= false;
                //显示提示信息:该用户已存在

            }
        }
        //如果是新用户,则进行注册
        if (flag){
            String newSql = "insert into user_table values(null,?,?)";
            PreparedStatement ps2 = con.prepareStatement(newSql);
            ps2.setObject(1,user.getName());
            ps2.setObject(2,user.getPsw());
            ps2.executeUpdate();

            //需要跳转注册成功页面
            System.out.println("注册成功!!!!(记得删除打桩)");//跳转功能添加处**********

        }
    }


    /**
     * 登录
     * 从网页输入框获取name,psw,给id赋予null值组成一个User传入
     *
     * ----登录成功后要跳转到主页----
     *
     * @param user
     * @throws SQLException
     * @throws ClassNotFoundException
     */
    public static void login(User user) throws SQLException, ClassNotFoundException {
        Connection con = JDBCUtils.get();
        String sql = "select id,name,psw from user_table";
        PreparedStatement ps = con.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        //查询出所有的用户存入userList
        List<User> userList = new ArrayList<>();
        while (rs.next()){
            Integer rsId = (Integer) rs.getObject(1);
            String rsName = (String) rs.getObject(2);
            String rsPsw = (String) rs.getObject(3);
            User u = new User(rsId,rsName,rsPsw);
            userList.add(u);
        }

        for (User u:userList){
            if (u.equals(user)){
                //如果用户名和密码匹配则登录成功,跳转页面

                System.out.println("登录成功(记得删除打桩)");//功能添加处********

                return;
            }
        }

        System.out.println("登录失败,用户名或密码错误");//登录失败功能添加处********

    }


}
